package com.yunxi.service.localService.sys;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.service.IServicePlus;
import com.yunxi.core.web.ApiResult;
import com.yunxi.core.web.LoginInfo;
import com.yunxi.model.sys.Staff;
import com.yunxi.sys.pojo.RoleVO;
import com.yunxi.sys.pojo.StaffListVO;
import com.yunxi.sys.pojo.StaffVO;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 员工信息 服务类
 * </p>
 *
 * @author 
 * @since 2019-05-20
 */
public interface StaffService extends IServicePlus<Staff> {

    List<StaffListVO> getStaffListById(String orgId);

    StaffVO getByUserCode(String userCode);

    StaffVO getCasById(String staffId);

    List<RoleVO> listRole(String tenantId);

    void syncStaff(Staff staff);

    void batchCreateUser(String flag) throws InvocationTargetException, IllegalAccessException;

   List<StaffVO> listByPartnerCode(String partnerCode);

    List<StaffVO> listManagerByPartnerCode(String partnerCode);

   PageInfo listRegionManager(String areaCode,Integer pageNum, Integer pageSize);

   List<StaffVO> listRegionManagerByAreaCode(String areaCode);

   PageInfo listAllRegionManager(Integer pageNum, Integer pageSize);

   PageInfo listRegionManagerNotExits(String areaCode, Integer pageNum, Integer pageSize);

   ApiResult listStaffByRoleCode(String roleCode, LoginInfo loginInfo);

   List<StaffVO> getRegionManagerByUserCode(String fellowId);

   PageInfo listAllCityManager(Integer pageNum, Integer pageSize);

   PageInfo listCityManagerNotExits(Integer pageNum, Integer pageSize);

   PageInfo listCityManagerByAccountNo(String accountNo, Integer pageNum, Integer pageSize);

   List<StaffVO> listCityManagerByCityCode(String cityCode);

   void removeTargetByAccountNo(String accountNo);
}
